|
sgdk
|
Z80 control. More...
Go to the source code of this file.
Defines | |
| #define | Z80_HALT_PORT 0xA11100 |
| #define | Z80_RESET_PORT 0xA11200 |
| #define | Z80_RAM_START 0xA00000 |
| #define | Z80_RAM_END 0xA01FFF |
| #define | Z80_RAM Z80_RAM_START |
| #define | Z80_RAM_LEN ((Z80_RAM_END - Z80_RAM_START) + 1) |
| #define | Z80_YM2612 0xA04000 |
| #define | Z80_BANK_REGISTER 0xA06000 |
| #define | Z80_DRV_COMMAND 0xA00100 |
| #define | Z80_DRV_STATUS 0xA00102 |
| #define | Z80_DRV_PARAMS 0xA00104 |
| #define | Z80_DRV_COM_PLAY_SFT 0 |
| #define | Z80_DRV_COM_STOP_SFT 4 |
| #define | Z80_DRV_STAT_PLAYING_SFT 0 |
| #define | Z80_DRV_STAT_READY_SFT 7 |
| #define | Z80_DRV_COM_PLAY (1 << Z80_DRV_COM_PLAY_SFT) |
| #define | Z80_DRV_COM_STOP (1 << Z80_DRV_COM_STOP_SFT) |
| #define | Z80_DRV_STAT_PLAYING (1 << Z80_DRV_STAT_PLAYING_SFT) |
| #define | Z80_DRV_STAT_READY (1 << Z80_DRV_STAT_READY_SFT) |
| #define | Z80_DRV_CH0_SFT 0 |
| #define | Z80_DRV_CH1_SFT 1 |
| #define | Z80_DRV_CH2_SFT 2 |
| #define | Z80_DRV_CH3_SFT 3 |
| #define | Z80_DRV_CH0 (1 << Z80_DRV_CH0_SFT) |
| #define | Z80_DRV_CH1 (1 << Z80_DRV_CH1_SFT) |
| #define | Z80_DRV_CH2 (1 << Z80_DRV_CH2_SFT) |
| #define | Z80_DRV_CH3 (1 << Z80_DRV_CH3_SFT) |
| #define | Z80_DRIVER_NULL 0 |
| #define | Z80_DRIVER_PCM 1 |
| #define | Z80_DRIVER_2ADPCM 2 |
| #define | Z80_DRIVER_4PCM_ENV 4 |
| #define | Z80_DRIVER_MVS 5 |
| #define | Z80_DRIVER_TFM 6 |
| #define | Z80_DRIVER_VGM 7 |
| #define | Z80_DRIVER_XGM 8 |
| #define | Z80_DRIVER_CUSTOM -1 |
| #define | Z80_DRIVER_DEFAULT Z80_DRIVER_PCM |
Functions | |
| void | Z80_init () |
| Initialize Z80 sub system. | |
| u16 | Z80_isBusTaken () |
| Return Z80 BUS taken state. | |
| void | Z80_requestBus (u16 wait) |
| Request Z80 BUS. | |
| void | Z80_releaseBus () |
| Release Z80 BUS. | |
| void | Z80_startReset () |
| Start Z80 reset. | |
| void | Z80_endReset () |
| End Z80 reset. | |
| void | Z80_setBank (const u16 bank) |
| Set Z80 memory bank. | |
| u8 | Z80_read (const u16 addr) |
| Read Z80 memory (Z80_RAM). | |
| void | Z80_write (const u16 addr, const u8 value) |
| Write to Z80 memory (Z80_RAM). | |
| void | Z80_clear (const u16 dest, const u16 size, const u16 resetz80) |
| Clear Z80 memory. | |
| void | Z80_upload (const u16 dest, const u8 *data, const u16 size, const u16 resetz80) |
| Upload data in Z80 memory. | |
| void | Z80_download (const u16 from, u8 *dest, const u16 size) |
| Read data from Z80 memory. | |
| u16 | Z80_getLoadedDriver () |
| Return currently loaded Z80 driver. | |
| void | Z80_unloadDriver () |
| Unload Z80 driver (actually clear Z80 ram). | |
| void | Z80_loadDriver (const u16 driver, const u16 waitReady) |
| Load a Z80 driver. | |
| void | Z80_loadCustomDriver (const u8 *drv, u16 size) |
| Load a custom Z80 driver. | |
| u16 | Z80_isDriverReady () |
| Return driver ready state (only for non custom driver). | |
Z80 control.
This unit provides Z80 access from the YM2612 :
| #define Z80_BANK_REGISTER 0xA06000 |
Z80 Bank register address.
| #define Z80_DRIVER_2ADPCM 2 |
2 channels PCM sample player Z80 driver.
It can mix 2 samples (4 bit PCM) at a fixed 22 Khz rate.
| #define Z80_DRIVER_4PCM_ENV 4 |
4 channels sample player Z80 driver with envelop control.
It can mix 4 samples (8 bit signed) at a fixed 16 Khz rate
and handle volume (16 levels) for each channel.
| #define Z80_DRIVER_CUSTOM -1 |
CUSTOM Z80 driver.
| #define Z80_DRIVER_MVS 5 |
MVS tracker Z80 driver (updated to last version with PCM and PSG support).
| #define Z80_DRIVER_NULL 0 |
NULL Z80 driver.
| #define Z80_DRIVER_PCM 1 |
Variable rate sample player Z80 driver.
It can play a sample (8 bit signed) from 8 Khz up to 32 Khz rate.
| #define Z80_DRIVER_TFM 6 |
TFM tracker Z80 driver.
| #define Z80_DRIVER_VGM 7 |
VGM Z80 driver.
It supports 1 PCM channel at a fixed 8 Khz and allows to play SFX through the named PCM channel.
Written by Sigflup and kubilus1.
| #define Z80_DRIVER_XGM 8 |
eXtended VGM music player driver.
This driver takes VGM (or XGM) file as input to play music.
It supports 4 PCM channels at a fixed 14 Khz and allows to play SFX through PCM with 16 level of priority.
The driver is designed to avoid DMA contention when possible (depending CPU load).
| #define Z80_DRV_CH0 (1 << Z80_DRV_CH0_SFT) |
Z80 default driver channel 0 id.
| #define Z80_DRV_CH1 (1 << Z80_DRV_CH1_SFT) |
Z80 default driver channel 1 id.
| #define Z80_DRV_CH2 (1 << Z80_DRV_CH2_SFT) |
Z80 default driver channel 2 id.
| #define Z80_DRV_CH3 (1 << Z80_DRV_CH3_SFT) |
Z80 default driver channel 3 id.
| #define Z80_DRV_COM_PLAY (1 << Z80_DRV_COM_PLAY_SFT) |
Z80 default driver play command.
| #define Z80_DRV_COM_STOP (1 << Z80_DRV_COM_STOP_SFT) |
Z80 default driver stop command.
| #define Z80_DRV_COMMAND 0xA00100 |
Z80 default driver command address.
| #define Z80_DRV_PARAMS 0xA00104 |
Z80 default driver parameters address.
| #define Z80_DRV_STAT_PLAYING (1 << Z80_DRV_STAT_PLAYING_SFT) |
Z80 default driver play status.
| #define Z80_DRV_STAT_READY (1 << Z80_DRV_STAT_READY_SFT) |
Z80 default driver ready status.
| #define Z80_DRV_STATUS 0xA00102 |
Z80 default driver status address.
| #define Z80_RAM Z80_RAM_START |
Z80 RAM address.
| #define Z80_RAM_END 0xA01FFF |
Z80 RAM end address.
| #define Z80_RAM_LEN ((Z80_RAM_END - Z80_RAM_START) + 1) |
Z80 RAM length in byte.
| #define Z80_RAM_START 0xA00000 |
Z80 RAM start address.
| #define Z80_YM2612 0xA04000 |
Z80 YM2612 port address.
| void Z80_clear | ( | const u16 | dest, |
| const u16 | size, | ||
| const u16 | resetz80 | ||
| ) |
Clear Z80 memory.
| dest | Destination address (Z80 memory). |
| size | Size in byte of region to clear. |
| resetz80 | Reset Z80 if set to TRUE. |
| void Z80_download | ( | const u16 | from, |
| u8 * | dest, | ||
| const u16 | size | ||
| ) |
Read data from Z80 memory.
| from | Source address (Z80 memory). |
| dest | Destination where to write data. |
| size | Size in byte of data to read. |
| u16 Z80_getLoadedDriver | ( | ) |
Return currently loaded Z80 driver.
Possible returned values are:
| void Z80_init | ( | ) |
Initialize Z80 sub system.
Request Z80 BUS and reset bank number.
| void Z80_loadCustomDriver | ( | const u8 * | drv, |
| u16 | size | ||
| ) |
Load a custom Z80 driver.
| drv | Pointer to the driver binary to load. |
| size | Size (in bytes) of the driver binary. |
| void Z80_loadDriver | ( | const u16 | driver, |
| const u16 | waitReady | ||
| ) |
Load a Z80 driver.
| driver | Driver to load, possible values are: |
| waitReady | Wait for driver to be ready. |
| u8 Z80_read | ( | const u16 | addr | ) |
Read Z80 memory (Z80_RAM).
| addr | Address to read (relative to start of Z80_RAM). |
You need to request Z80 BUS to access Z80 memory.
| void Z80_requestBus | ( | u16 | wait | ) |
Request Z80 BUS.
| wait | Wait for BUS request operation to complete. |
| void Z80_setBank | ( | const u16 | bank | ) |
Set Z80 memory bank.
| bank | Bank number to set (0x000-0x1FF) |
| void Z80_upload | ( | const u16 | dest, |
| const u8 * | data, | ||
| const u16 | size, | ||
| const u16 | resetz80 | ||
| ) |
Upload data in Z80 memory.
| dest | Destination address (Z80 memory). |
| data | Data to upload. |
| size | Size in byte of data to upload. |
| resetz80 | Reset Z80 if set to TRUE. |
| void Z80_write | ( | const u16 | addr, |
| const u8 | value | ||
| ) |
Write to Z80 memory (Z80_RAM).
| addr | Address to write (relative to start of Z80_RAM). |
| value | Value to write. |
You need to request Z80 BUS to access Z80 memory.